package com.beiben.system.group.mapper;

import java.util.List;
import com.beiben.system.group.domain.Group;
import com.beiben.system.group.domain.UserGroup;
import org.apache.ibatis.annotations.Param;

/**
 * 组别Mapper接口
 * 
 * @author 熊国强
 * @date 2020-09-09
 */
public interface GroupMapper 
{
    /**
     * 查询组别
     * 
     * @param id 组别ID
     * @return 组别
     */
    public Group selectGroupById(Long id);

    /**
     * 查询组别列表
     * 
     * @param group 组别
     * @return 组别集合
     */
    public List<Group> selectGroupList(Group group);

    /**
     * 查询组别列表
     *
     * @param
     * @return 组别集合
     */
    public List<Group> selectGroupAll();

    /**
     * 更具用户查询组别列表
     *
     * @param
     * @return 组别集合
     */
    public List<Integer> selectUserGroup(Long userId);

    /**
     * 新增组别
     * 
     * @param group 组别
     * @return 结果
     */
    public int insertGroup(Group group);

    /**
     * 修改组别
     * 
     * @param group 组别
     * @return 结果
     */
    public int updateGroup(Group group);

    /**
     * 删除组别
     * 
     * @param id 组别ID
     * @return 结果
     */
    public int deleteGroupById(Long id);

    /**
     * 批量删除组别
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteGroupByIds(Long[] ids);


    /**
     * 查询组别
     *
     * @param code 组别ID
     * @return 组别
     */
    public Group selectGroupByCode(@Param("code") String code);


}
